Sys.setlocale("LC_CTYPE","pl_PL")
set.seed(92)
library(dplyr)
library(ggplot2)
library(plotly)
library(knitr)
library(VIM)
library(lattice)
library(mice)
library(reshape2)
herrings <-read.csv("sledzie.csv", na.strings = "?")
Na żadnym atrybucie nie brakuje więcej niż 5% wartości, brak podstaw do odrzucenia czy ponownego pomiaru na którymkolwiek atrybucie.
percentageMissing <- function(x){sum(is.na(x))/length(x)*100}
kable(t(apply(herrings,2,percentageMissing)))
| X | length | cfin1 | cfin2 | chel1 | chel2 | lcop1 | lcop2 | fbar | recr | cumf | totaln | sst | sal | xmonth | nao |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 3.006732 | 2.921152 | 2.957286 | 2.959188 | 3.143661 | 3.02575 | 0 | 0 | 0 | 0 | 3.012438 | 0 | 0 | 0 |
Brakujące wartości występują na siedmiu atrybutach. Rozkład losowy. Zdecydowaną większość stanowią wiersze w której brakuje tylko jednej wartości.
aggr(herrings, col=c('green', 'red'), numbers=TRUE, sortVars=TRUE, labels=names(herrings), bars=TRUE, prop=FALSE, combined=TRUE, only.miss=TRUE, ylabs="Kombinacje brakujących wartości")
##
## Variables sorted by number of missings:
## Variable Count
## lcop1 1653
## lcop2 1591
## sst 1584
## cfin1 1581
## chel2 1556
## chel1 1555
## cfin2 1536
## X 0
## length 0
## fbar 0
## recr 0
## cumf 0
## totaln 0
## sal 0
## xmonth 0
## nao 0
Imputujemy wartości przy użyciu pakietu MICE. Wykresy gęstości, oryginalne dane na niebiesko, wstawione na czerwono. Okazuje się, że w większości przypadków brakujące wartości pochodziły z wąskiego zakresu => brak wartości nie był przypadkowy i zaszedł w tylko w określonych warunkach połowu.
=> rozkłady są zbliżone tylko w małych przedziałach
imputedHerrings <- mice(herrings, m=1, method = "mean", seed= 29, print=FALSE)
densityplot(imputedHerrings)
Tworzymy nową kolekcję danych, już uzupełnioną o brakujące wartości. Ostatnim etapem jest nadanie nowych, czytelnych nazw kolumnom.
completeHerrings <- complete(imputedHerrings, 1)
colnames(completeHerrings) <- c("Połów", "Długość", "Calanus finmarchicus gatunek 1", "Calanus finmarchicus gatunek 2", "Calanus helgolandicus gatunek 1", "Calanus helgolandicus gatunek 2","Widłonogi gatunek 1","Widłonogi gatunek 2","Żywy narybek w czasie połowu","Złowione śledzie w skali roku","Żywy narybek w skali roku","Złowione śledzie w czasie połowu", "Temperatura powierzchni oceanu [°C]", "Zasolenie wody [‰]", "Miesiąc", "NAO")
d <- melt(completeHerrings[-c(1)])
ggplot(d, aes(x=value)) +
facet_wrap(~variable, scales = "free", ncol = 2) +
geom_density() +
ylab("Gęstość wartości") +
xlab("Zmienna") +
theme_light()
kable(summary(completeHerrings))
| Połów | Długość | Calanus finmarchicus gatunek 1 | Calanus finmarchicus gatunek 2 | Calanus helgolandicus gatunek 1 | Calanus helgolandicus gatunek 2 | Widłonogi gatunek 1 | Widłonogi gatunek 2 | Żywy narybek w czasie połowu | Złowione śledzie w skali roku | Żywy narybek w skali roku | Złowione śledzie w czasie połowu | Temperatura powierzchni oceanu [°C] | Zasolenie wody [‰] | Miesiąc | NAO | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Min. : 0 | Min. :19.0 | Min. : 0.0000 | Min. : 0.0000 | Min. : 0.000 | Min. : 5.238 | Min. : 0.3074 | Min. : 7.849 | Min. :0.0680 | Min. : 140515 | Min. :0.06833 | Min. : 144137 | Min. :12.77 | Min. :35.40 | Min. : 1.000 | Min. :-4.89000 | |
| 1st Qu.:13145 | 1st Qu.:24.0 | 1st Qu.: 0.0000 | 1st Qu.: 0.2778 | 1st Qu.: 2.469 | 1st Qu.:13.589 | 1st Qu.: 2.5479 | 1st Qu.:17.808 | 1st Qu.:0.2270 | 1st Qu.: 360061 | 1st Qu.:0.14809 | 1st Qu.: 306068 | 1st Qu.:13.63 | 1st Qu.:35.51 | 1st Qu.: 5.000 | 1st Qu.:-1.89000 | |
| Median :26290 | Median :25.5 | Median : 0.1333 | Median : 0.7012 | Median : 6.083 | Median :21.435 | Median : 7.1229 | Median :25.338 | Median :0.3320 | Median : 421391 | Median :0.23191 | Median : 539558 | Median :13.86 | Median :35.51 | Median : 8.000 | Median : 0.20000 | |
| Mean :26290 | Mean :25.3 | Mean : 0.4458 | Mean : 2.0248 | Mean :10.006 | Mean :21.221 | Mean : 12.8108 | Mean :28.419 | Mean :0.3304 | Mean : 520366 | Mean :0.22981 | Mean : 514973 | Mean :13.87 | Mean :35.51 | Mean : 7.258 | Mean :-0.09236 | |
| 3rd Qu.:39436 | 3rd Qu.:26.5 | 3rd Qu.: 0.3603 | 3rd Qu.: 1.9973 | 3rd Qu.:11.500 | 3rd Qu.:27.193 | 3rd Qu.: 21.2315 | 3rd Qu.:37.232 | 3rd Qu.:0.4560 | 3rd Qu.: 724151 | 3rd Qu.:0.29803 | 3rd Qu.: 730351 | 3rd Qu.:14.16 | 3rd Qu.:35.52 | 3rd Qu.: 9.000 | 3rd Qu.: 1.63000 | |
| Max. :52581 | Max. :32.5 | Max. :37.6667 | Max. :19.3958 | Max. :75.000 | Max. :57.706 | Max. :115.5833 | Max. :68.736 | Max. :0.8490 | Max. :1565890 | Max. :0.39801 | Max. :1015595 | Max. :14.73 | Max. :35.61 | Max. :12.000 | Max. : 5.08000 |